package com.mercury.ec.module.air.controller.admin.demandorder.vo.demandprice;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 机票需求订单方案价格核价 Request VO")
@Data
public class AirDemandPricePricingReqVO {

    @Schema(description = "订单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4310")
    @NotNull(message = "订单id不能为空")
    private Long demandId;

    @Schema(description = "方案id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22079")
    @NotNull(message = "方案id不能为空")
    private Long demandSchemeId;

    @Schema(description = "行程id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16485")
    @NotNull(message = "行程id不能为空")
    private Long demandRouteId;

    @Schema(description = "价格id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19188")
    @NotNull(message = "价格id不能为空")
    private Long id;

    @Schema(description = "乘客类型 字典（system_passenger_type 1-成人/2-儿童/3-婴儿）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "乘客类型不能为空")
    private Integer passengerType;

    @Schema(description = "采购附加费", example = "4446")
    private BigDecimal purchaseAdditionalFee;

    @Schema(description = "采购服务费", requiredMode = Schema.RequiredMode.REQUIRED ,example = "4446")
    @NotNull(message = "采购服务费不能为空")
    private BigDecimal purchaseServiceFee;

    @Schema(description = "采购票面价", requiredMode = Schema.RequiredMode.REQUIRED, example = "4446")
    @NotNull(message = "采购票面价不能为空")
    private BigDecimal purchaseTicketPrice;

    @Schema(description = "采购价", requiredMode = Schema.RequiredMode.REQUIRED, example = "11881")
    @NotNull(message = "采购价不能为空")
    private BigDecimal purchasePrice;

    @Schema(description = "采购机建税", example = "123")
    private BigDecimal purchaseAirportTax;

    @Schema(description = "采购燃油税", example = "123")
    private BigDecimal purchaseOilTax;

    @Schema(description = "采购税", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购税不能为空")
    private BigDecimal purchaseTax;

    @Schema(description = "采购代理费率", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购代理费率不能为空")
    private BigDecimal purchaseAgencyFeeRate;

    @Schema(description = "采购代理费", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购代理费不能为空")
    private BigDecimal purchaseAgencyFee;

    @Schema(description = "采购后返费率", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购后返费率不能为空")
    private BigDecimal purchaseBackRebateFeeRate;

    @Schema(description = "采购后返费", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购后返费不能为空")
    private BigDecimal purchaseBackRebateFee;

    @Schema(description = "采购记奖价", example = "25926")
    private BigDecimal purchasePrizePrice;

    @Schema(description = "采购记奖税", example = "123")
    private BigDecimal purchasePrizeTax;

    @Schema(description = "采购金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购金额不能为空")
    private BigDecimal purchaseAmount;

    @Schema(description = "采购应付", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    @NotNull(message = "采购应付不能为空")
    private BigDecimal purchasePayable;
}
